The task of producing a broadcast program is a complicated, time-consuming and error-prone job. Traditionally, a programmer (which is understood by one skilled in the art to be a person who schedules and distributes broadcast content, in contrast to a computer programmer who writes code) assigns a broadcast program (a broadcast event) to a time slot and ensures that other events, including interstitial and commercial events, are available to be inserted into the output stream when a cue tone, or equivalent signal, is detected. If the programmer desires to add other types of information, such as multimedia data, the programming is complicated even further.
In a digital broadcast system, the programmer schedules the time that content is to play for a specific event, where the media resides, what media server should play it and how to control the media server. This information often resides in one or more databases, which can be, for instance, flat-file, relational or object-oriented databases. The typical broadcast scheduler would continuously examine the database and, at the scheduled time, the broadcast scheduler would control the appropriate media server to play the desired broadcast event. For live-event contents such as sportscasts, the schedule is subject to change (e.g., due to rain delay) and some manual intervention may be necessary to adjust schedules in real-time as specified by a director or producer. Broadcast schedules may also be supplied to electronic program guide (“EPG”) systems for consumer use, including real-time channel selection and digital video recorder (“DVR”) configuration.
As broadcasting information becomes more and more sophisticated, so are techniques needed that simplify and/or reduce the amount of effort provided by broadcast hardware and programmers. Additionally, because scheduled content may include varying types and genres of content, systems and methods for optimizing the content based on type or genre would be desirable.